<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>使用访问器伪造属性</title>
</head>
<body>
    
</body>
<script>
    let obj = {
        lesson:[
            {name:'Vue.js',price:200},
            {name:'Node.js',price:150},
            {name:'js',price:100}
        ],
        get total(){
            return this.lesson.reduce((pre,item)=>{
                return pre+item.price
            },0)
        }
    }
    console.log(obj.total)   //450

    obj.total = 'jimmy' 
    console.log(obj.total)  //450   我们并不能给伪造的属性结点赋值  
    /*
        访问器 使用 get 和 set作为标识符 后面连接的是一个方法
            而我们在使用的时候  并不是以方法的形式使用  而是以属性的方式使用 
                如上例子  我们是使用  obj.total  而不是 obj.total()

            还有一个好处是使用访问器是不会被修改这个访问器做的内容的  只是一个伪造的一个属性结点  所以我们并不能给这个伪造的属性结点赋值
                这个就是因为访问器伪造的一个属性结点
    */
</script>
</html>